lib_fvgLibrary "lib_fvg"
further expansion of my object oriented library toolkit. This lib detects Fair Value Gaps and returns them as objects.
Drawing them is a separate step so the lib can be used with securities. It also allows for usage of current/close price to detect fill/invalidation of a gap and to adjust the fill level dynamically. FVGs can be detected while forming and extended indefinitely while they're unfilled.
method draw(this)
Namespace types: FVG
Parameters:
this (FVG)
method draw(fvgs)
Namespace types: FVG
Parameters:
fvgs (FVG )
is_fvg(mode, precondition, filter_insignificant, filter_insignificant_atr_factor, live)
Parameters:
mode (int) : switch for detection 1 for bullish FVGs, -1 for bearish FVGs
precondition (bool) : allows for other confluences to block/enable detection
filter_insignificant (bool) : allows to ignore small gaps
filter_insignificant_atr_factor (float) : allows to adjust how small (compared to a 50 period ATR)
live (bool) : allows to detect FVGs while the third bar is forming -> will cause repainting
Returns: a tuple of (bar_index of gap bar, gap top, gap bottom)
create_fvg(mode, idx, top, btm, filled_at_pc, config)
Parameters:
mode (int) : switch for detection 1 for bullish FVGs, -1 for bearish FVGs
idx (int) : the bar_index of the FVG gap bar
top (float) : the top level of the FVG
btm (float) : the bottom level of the FVG
filled_at_pc (float) : the ratio (0-1) that the fill source needs to retrace into the gap to consider it filled/invalidated/ready for removal
config (FVGConfig) : the plot configuration/styles for the FVG
Returns: a new FVG object if there was a new FVG, else na
detect_fvg(mode, filled_at_pc, precondition, filter_insignificant, filter_insignificant_atr_factor, live, config)
Parameters:
mode (int) : switch for detection 1 for bullish FVGs, -1 for bearish FVGs
filled_at_pc (float)
precondition (bool) : allows for other confluences to block/enable detection
filter_insignificant (bool) : allows to ignore small gaps
filter_insignificant_atr_factor (float) : allows to adjust how small (compared to a 50 period ATR)
live (bool) : allows to detect FVGs while the third bar is forming -> will cause repainting
config (FVGConfig)
Returns: a new FVG object if there was a new FVG, else na
method update(this, fill_src)
Namespace types: FVG
Parameters:
this (FVG)
fill_src (float) : allows for usage of different fill source series, e.g. high for bearish FVGs, low vor bullish FVGs or close for both
method update(all, fill_src)
Namespace types: FVG
Parameters:
all (FVG )
fill_src (float)
method remove_filled(unfilled_fvgs)
Namespace types: FVG
Parameters:
unfilled_fvgs (FVG )
method delete(this)
Namespace types: FVG
Parameters:
this (FVG)
method delete_filled_fvgs_buffered(filled_fvgs, max_keep)
Namespace types: FVG
Parameters:
filled_fvgs (FVG )
max_keep (int) : the number of filled, latest FVGs to retain on the chart.
FVGConfig
Fields:
box_args (|robbatt/lib_plot_objects/36;BoxArgs|#OBJ)
line_args (|robbatt/lib_plot_objects/36;LineArgs|#OBJ)
box_show (series__bool)
line_show (series__bool)
keep_filled (series__bool)
extend (series__bool)
FVG
Fields:
config (|FVGConfig|#OBJ)
startbar (series__integer)
mode (series__integer)
top (series__float)
btm (series__float)
center (series__float)
size (series__float)
fill_size (series__float)
fill_lvl_target (series__float)
fill_lvl_current (series__float)
fillbar (series__integer)
filled (series__bool)
_fvg_box (|robbatt/lib_plot_objects/36;Box|#OBJ)
_fill_line (|robbatt/lib_plot_objects/36;Line|#OBJ)
ค้นหาในสคริปต์สำหรับ "fair value gap"
Gaps + Imbalances + Wicks (MTF) - By LeviathanThis script will identify and draw price gaps, wicks and imbalances with customizable fill conditions, multi-timeframe function, zone size filtering, volume comparison, lookback filtering, as well as highly customizable appearance and settings.
I’ve made this indicator to combine the three similar but different elements that occur in price movements and serve as significant zones of interest or way of PA interpretation in various different strategies.
Imbalances (or Fair Value Gap/FVG/Inefficiency/whatever)
- The Imbalance “pattern” consists of 3 candles (1- candle before the sharp move, 2 - sharp move candle and 3- candle after the sharp move). When price makes a move downwards, the imbalance zone is defined as the area between the low of 1 and the high of 3 When price makes a move upwards, the imbalance zone is defined as the area between the high of 1 and the low of 3.
Gaps
A price gap is an area on a chart where no trading activity has taken place. A gap up means that the low of the current candle is higher than the high of the previous candle and a gap down means that the high of the current candle is lower than the low of the previous candle.
Wicks (or shadows/tails/whatever)
Wicks are used to indicate where the price has fluctuated relative to the opening and closing price of the candle. An upper wick is the zone between candle high and candle close/open (whichever is higher) and a lower wick is the zone between candle’s low and candle’s close/open (whichever is lower).
Settings Overview
“Zone Type” - This input lets you decide which zones should the script plot and on which timeframe. You should always pick a timeframe higher than your chat’s.
“Middle Line, Top Line, Bottom Line” - Show or hide the Middle Line (horizontal level in the middle of each zone), Show or hide Top Line (horizontal level at the top of the zone), Show or hide Bottom Line (horizontal level at the bottom of the zone)
“UP/DOWN Zones" - This input lets you show/hide UP Zones or DOWN Zones an pick their color, border color and label color.
”Fill Condition” - If turned ON, the zones will end drawing when your prefered Fill Condition is met (Full Filll = price mitigates the whole zone, Half Fill = zone is at least halfway mitigated and Touch = zone is touched by price). If turned OFF, the zones will only be plotted for the amount of bars defined it “Zone Length”.
”Lookback (D)” - This input lets you limit the amount of zones plotted on the chart by choosing how many days back in time should the script go to find and plot zones. For example, input 1 will only show you the zones of the past day, input 7 will only show you the zones of the past week.
”Hide Filled Zones” - If turned ON, the zones that have been filled will be removed from the chart.
”Show Boxes” - Show or hide the boxes that represent the zones. This is useful for those who want the zones to be visualized by just lines.
“Filter Type” - this input lets you create a filter that will make the script only show zones that are larger than ATR or larger than a certain percentage. You can choose the ATR Length and the multiplier (higher multiplier → larger zone required), as well as the Percentage (%) and its multiplier (higher percentage → larger zone required). If you choose “None”, the zones of all sizes will be plotted.
”Zone Labels” - this part of the settings lets you: show/hide labels, decide on the size of the labels and their positions, choose a custom name for each zone, choose the data that the labels present (Type of the zone/Timeframe/ Volume ).
”Other settings” - ‘Stop/Delete zone after X number of candles’ will force stop/delete the zone if it’s plotted for more than prefered number of bars. ‘Line Style’ lets you choose the style and the color of the lines, ‘Zone Length’ defines the length of the zone if Fill Condition is “None”.
More settings, modifications and improvements coming in future updates. This script is a bit old so I will clean up and optimize the code once I have more time.
First Fvg Strategy with CHoCH Exits, Adaptive TP & Entry TimerA strategy that is purely based off of prices reaction to the first presented fair value gap at 9:30 market open. Works best on NASDAQ one minute timeframe. Experimental indicator for me to back test first presented fair value gap.
Quasimodo Pattern Strategy Back Test [TradingFinder] QM Trading🔵 Introduction
The QM pattern, also known as the Quasimodo pattern, is one of the popular patterns in price action, and it is often used by technical analysts. The QM pattern is used to identify trend reversals and provides a very good risk-to-reward ratio. One of the advantages of the QM pattern is its high frequency and visibility in charts.
Additionally, due to its strength, it is highly profitable, and as mentioned, its risk-to-reward ratio is very good. The QM pattern is highly popular among traders in supply and demand, and traders also use this pattern.
The Price Action QM pattern, like other Price Action patterns, has two types: Bullish QM and Bearish QM patterns. To identify this pattern, you need to be familiar with its types to recognize it.
🔵 Identifying the QM Pattern
🟣 Bullish QM
In the bullish QM pattern, as you can see in the image below, an LL and HH are formed. As you can see, the neckline is marked as a dashed line. When the price reaches this range, it will start its upward movement.
🟣 Bearish QM
The Price Action QM pattern also has a bearish pattern. As you can see in the image below, initially, an HH and LL are formed. The neckline in this image is the dashed line, and when the LL is formed, the price reaches this neckline. However, it cannot pass it, and the downward trend resumes.
🔵 How to Use
The Quasimodo pattern is one of the clearest structures used to identify market reversals. It is built around the concept of a structural break followed by a pullback into an area of trapped liquidity. Instead of relying on lagging indicators, this pattern focuses purely on price action and how the market reacts after exhausting one side of liquidity. When understood correctly, it provides traders with precise entry points at the transition between trend phases.
🟣 Bullish Quasimodo
A bullish Quasimodo forms after a clear downtrend when sellers start losing control. The market continues to make lower lows until a sudden higher high appears, signaling that buyers are entering with strength. Price then pulls back to retest the previous low, creating what is known as the Quasimodo low.
This area often becomes the final trap for sellers before the market shifts upward. A visible rejection or displacement from this zone confirms bullish momentum. Traders usually place entries near this level, stops below the low, and targets at previous highs or the next resistance zone. Combining the setup with demand zones or Fair Value Gaps increases its accuracy.
🟣 Bearish Quasimodo
A bearish Quasimodo forms near the top of an uptrend when buyers begin to lose strength. The market continues to make higher highs until a sudden lower low breaks the bullish structure, showing that selling pressure is entering the market. Price then retraces upward to retest the previous high, forming the Quasimodo high, where breakout buyers are often trapped.
Once rejection appears at this level, it indicates a likely reversal. Traders can enter short near this area, with stop-losses placed above the high and targets near the next support or previous lows. The setup gains more reliability when aligned with supply zones, SMT divergence, or bearish Fair Value Gaps.
🔵 Setting
Pivot Period : You can use this parameter to use your desired period to identify the QM pattern. By default, this parameter is set to the number 5.
Take Profit Mode : You can choose your desired Take Profit in three ways. Based on the logic of the QM strategy, you can select two Take Profit levels, TP1 and TP2. You can also choose your take profit based on the Reward to Risk ratio. You must enter your desired R/R in the Reward to Risk Ratio parameter.
Stop Loss Refine : The loss limit of the QM strategy is based on its logic on the Head pattern. You can refine it using the ATR Refine option to prevent Stop Hunt. You can enter your desired coefficient in the Stop Loss ATR Adjustment Coefficient parameter.
Reward to Risk Ratio : If you set Take Profit Mode to R/R, you must enter your desired R/R here. For example, if your loss limit is 10 pips and you set R/R to 2, your take profit will be reached when the price is 20 pips away from your entry point.
Stop Loss ATR Adjustment Coefficient : If you set Stop Loss Refine to ATR Refine, you must adjust your loss limit coefficient here. For example, if your buy position's loss limit is at the price of 1000, and your ATR is 10, if you set Stop Loss ATR Adjustment Coefficient to 2, your loss limit will be at the price of 980.
Entry Level Validity : Determines how long the Entry level remains valid. The higher the level, the longer the entry level will remain valid. By default it is 2 and it can be set between 2 and 15.
🔵 Results
The following examples show the backtest results of the Quasimodo (QM) strategy in action. Each image is based on specific settings for the symbol, timeframe, and input parameters, illustrating how the QM logic can generate signals under different market conditions. The detailed configuration for each backtest is also displayed on the image.
⚠ Important Note : Even with identical settings and the same symbol, results may vary slightly across different brokers due to data feed variations and pricing differences.
Default Properties of Backtests :
OANDA:XAUUSD | TimeFrame: 5min | Duration: 1 Year :
BINANCE:BTCUSD | TimeFrame: 5min | Duration: 1 Year :
CAPITALCOM:US30 | TimeFrame: 5min | Duration: 1 Year :
NASDAQ:QQQ | TimeFrame: 5min | Duration: 5 Year :
OANDA:EURUSD | TimeFrame: 5min | Duration: 5 Year :
PEPPERSTONE:US500 | TimeFrame: 5min | Duration: 5 Year :
Buyside & Sellside Liquidity The Buyside & Sellside Liquidity Indicator is an advanced Smart Money Concepts (SMC) tool that automatically detects and visualizes liquidity zones and liquidity voids (imbalances) directly on the chart.
🟢 Function and meaning:
1. Buyside Liquidity (green):
Highlights price zones above current price where short traders’ stop-loss orders are likely resting.
When price sweeps these areas, it often indicates a liquidity grab or stop hunt.
👉 These zones are labeled with 💵💰 emojis for a clear visual cue where smart money collects liquidity.
2. Sellside Liquidity (red):
Highlights zones below the current price where long traders’ stop-losses are likely placed.
Once breached, these often signal a potential reversal upward.
👉 The 💵💰🪙 emojis make these liquidity targets visually intuitive on the chart.
3. Liquidity Voids (bright areas):
Indicate inefficient price areas, where the market moved too quickly without filling orders.
These zones are often revisited later as the market seeks balance (fair value).
👉 Shown as light shaded boxes with 💰 emojis to emphasize imbalance regions.
💡 Usage:
• Helps spot smart money manipulation and stop hunts.
• Marks potential reversal or breakout zones.
• Great for traders applying SMC, ICT, or Fair Value Gap strategies.
✨ Highlight:
Dollar and money bag emojis (💵💰🪙💸) are integrated directly into chart labels to create a clear and visually engaging representation of liquidity areas.
Scalping Strategy: FVG + Engulfing
This is a scalping strategy based on the Fair Value Gap (FVG) and Engulfing pattern confirmation. It identifies the high and low of the first 5-minute candle after the 9:30 AM EST market open and waits for a breakout supported by a Fair Value Gap. A trade is only triggered after a retest of the FVG zone followed by an engulfing candle in the direction of the breakout. Trades are entered with a fixed 3:1 risk-to-reward ratio and limited to 2 entries per trading day to avoid overtrading. Ideal for NASDAQ scalping on a 1-minute chart.
PyraTime FVG [Pro] | Smart Anchored Price ActionPyraTime FVG is a professional-grade institutional trading suite designed to declutter price action analysis. Unlike standard indicators that flood the chart with infinite zones, this tool uses a proprietary "Velcro" Anchoring Engine that physically snaps Fair Value Gaps (FVGs) and Order Blocks to the exact candle geometry.
This tool replaces 4 separate indicators (FVG, Market Structure, Order Blocks, and Trend Dashboard) with a single, performance-optimized Pine Script v6 script.
🎯 Key Features
1. The "Velcro" FVG Engine Most FVG indicators draw boxes that extend infinitely, making charts messy.
Smart Extension: Zones extend to the right but automatically "snap" and cut off the moment price mitigates (fills) them.
Precision Anchoring: Boxes are drawn from the exact wick/body limits of the originating candles—no floating pixels.
Mitigation Tracking: Mitigated zones are instantly dimmed and archived, keeping your chart clean for current price action.
2. Intelligent Structure Mapping (BOS & CHoCH) The script distinguishes between trend continuation and trend reversals:
BOS (Break of Structure): Marked with Dotted Lines. Signals that the current trend is healthy and continuing.
CHoCH (Change of Character): Marked with Solid Lines. Signals a potential major trend reversal (e.g., the first Lower Low after an uptrend).
3. Multi-Timeframe (MTF) Scanner A non-intrusive dashboard in the bottom-right corner scans the 1H, 4H, and Daily timeframes in real-time.
IN BULL GAP: Price is currently inside a Higher Timeframe Buying Zone.
IN BEAR GAP: Price is currently inside a Higher Timeframe Selling Zone.
CLEAR: No major HTF obstacles nearby.
📚 How to Trade With This Tool (Tutorial)
Step 1: Check the "Big Picture" Look at the MTF Scanner (Bottom Right).
If the 1H and 4H say "IN BEAR GAP" (Gold), you know the higher timeframe bias is Down. You should prioritize selling opportunities.
Step 2: Wait for Price to Visit a Zone On your current chart (e.g., 5m or 15m), wait for price to enter a Gold FVG (Resistance).
Note: The box will be bright gold. Once price touches it, the script will snap the box to that candle, confirming the test.
Step 3: Confirm with Structure Don't sell blindly. Wait for a CHoCH Label (Change of Character) to appear. This confirms that the short-term uptrend has broken and sellers are stepping in.
Step 4: Target the Opposing Zone Aim for the next unmitigated Teal FVG (Bullish Support) or Order Block below.
⚙️ Settings & Customization
Filter Small Gaps: Uses an ATR filter (default 0.5) to ignore insignificant noise. Increase to 1.0 for a cleaner "Swings Only" view.
Show Midpoint: Toggles a dotted 50% equilibrium line inside every active gap.
Visual Style: Fully customizable colors. Default scheme is PyraTime Desert Gold & Oasis Teal.
UTS CORE + BOS + CHOCH – RR/TP/SL 📊 Indicator Working Principle
### 🔹 1. BOS (Break of Structure)
* **Definition:** Occurs when the price breaks the previous swing high or swing low level.
* **Interpretation:**
* If the last high is broken upwards → **Bullish BOS** (confirmation of uptrend).
* If the last low is broken downwards → **Bearish BOS** (confirmation of downtrend).
---
### 🔹 2. CHOCH (Change of Character)
* **Definition:** Indicates a trend reversal.
* **Interpretation:**
* In an uptrend, if the last low is broken downwards → **CHOCH↓** (start of downtrend).
* In a downtrend, if the last high is broken upwards → **CHOCH↑** (start of uptrend).
* **Chart:** Blue “CHOCH↑” labels on the chart mark trend reversals.
---
### 🔹 3. FVG (Fair Value Gap)
* **Definition:** A price gap formed between 3 candles.
* **Logic:**
* If the low of one candle stays above the high of the candle two bars back, a gap is created.
* Price tends to return to these gaps to “fill” them.
* **Chart:** The indicator highlights these gaps automatically (green/purple lines).
---
### 🔹 4. Signal Generation (BUY / SELL)
* A valid BOS or CHOCH confirmation + presence of FVG → **signal is triggered.**
* **Rules:**
* Upward break → **BUY signal**
* Downward break → **SELL signal**
* **Chart:** Red “SELL” and green “BUY” labels represent these trade signals.
---
### 🔹 5. RR – TP/SL Management
* When a trade is opened, the indicator automatically calculates **Entry, Stop Loss (SL), and Take Profits (TP1, TP2, TP3).**
* **Risk/Reward ratios:**
* TP1 = 1R
* TP2 = 2R
* TP3 = 3R
* If TP1 is hit and “Breakeven” option is enabled → SL moves to entry (risk-free trade).
---
👉 In short: this indicator tracks **market structure (BOS/CHOCH)**, detects **imbalances (FVG)**, and combines them with **risk/reward management (TP/SL)** to give you a ready-made trade
RXTrend█ OVERVIEW
The "RXTrend" indicator is a technical analysis tool based on a unique approach to trend identification using RSI values from overbought and oversold zones. Designed for traders seeking a precise tool to identify key market levels and trend direction, the indicator offers flexible settings, dynamic trend lines, candlestick coloring, and buy/sell signals, supported by alerts for key events.
█ CONCEPTS
"RXTrend" leverages the Relative Strength Index (RSI) to identify overbought and oversold zones, which are often significant areas on the chart due to potentially higher volume, increased volatility, or acting as pivot points. To address this, I created an indicator that uses RSI values from these zones, mapping them to price levels to determine the trend. Additionally, for a clearer market picture, boxes are added to highlight overbought and oversold zones on the chart, and candlestick coloring is based on the direction of the RSI moving average. This provides further confirmation of the trend direction and identifies potential correction or reversal points. The indicator is universal and works across all markets (stocks, forex, cryptocurrencies) and timeframes.
█ FEATURES
- RSI Calculation: Calculates RSI based on the closing price over a specified period, with a default length of 14.
- Trend Line: A smoothed trend line based on mapping RSI values from overbought (for downtrends) or oversold (for uptrends) zones to price levels. RSI values are transformed into prices using the price range from a selected period (default: 50 bars) and then smoothed to form the trend line. The line changes color based on the trend direction (blue for uptrend, orange for downtrend).
- Candlestick Coloring: Option to color candles based on the direction of the RSI moving average (RSI MA). Candle colors align with the trend and box colors (blue for uptrend, orange for downtrend, gray for neutral).
- Overbought and Oversold Zones: Identifies overbought (RSI > OB) and oversold (RSI < OS) levels, drawing dynamic boxes on the price chart to reflect these zones. Boxes update in real-time, adjusting to new highs and lows.
- Buy and Sell Signals: Generates buy signals (blue "Buy" labels) when the price crosses above the smoothed oversold line and sell signals (orange "Sell" labels) when the price crosses below the smoothed overbought line.
- Shadow Fill: Option to fill the space between the trend line and price (HL2) with adjustable transparency, aiding visual trend assessment.
Alerts: Built-in alerts for:
- Buy and sell signals.
- Appearance of new overbought/oversold boxes.
- RSI MA direction change (candle color change to uptrend or downtrend).
Customization: Allows adjustment of RSI length, overbought/oversold levels, smoothing period, colors, box and label transparency, and the option to keep boxes after RSI returns to normal.
█ HOW TO USE
Add to Chart: Apply the indicator to your TradingView chart via the Pine Editor or Indicators menu.
Configure Settings:
RSI Settings:
- RSI Length: Sets the RSI calculation period (default: 14).
- Overbought Level (OB): Sets the overbought threshold (default: 70).
- Oversold Level (OS): Sets the oversold threshold (default: 30).
Price Settings:
- Price Range Lookback: Defines the period for calculating the price range (default: 50).
Candle Coloring:
- Color Candles: Enables/disables candle coloring based on RSI MA direction.
- RSI MA Length: Sets the RSI moving average period (default: 21).
Smoothing Settings:
- Smoothing Length: Degree of trend line smoothing (default: 5).
Colors:
- Trend Colors: Customize colors for uptrend (default: blue), downtrend (default: orange), and shadow fill.
Box Settings:
- Box Transparency: Adjusts box transparency (0-100).
- Box Colors: Sets colors for overbought (orange) and oversold (blue) zones.
- Keep Boxes: Determines if boxes remain after RSI returns to normal.
Signals:
- Show Buy/Sell Signals: Enables/disables signal label display.
- Label Transparency: Adjusts signal label transparency.
Interpreting Signals:
- Trend Line: Shows market direction (blue for uptrend, orange for downtrend).
- Buy Signals: Blue "Buy" label appears when the price crosses above the smoothed oversold line, signaling a potential uptrend.
- Sell Signals: Orange "Sell" label appears when the price crosses below the smoothed overbought line, signaling a potential downtrend.
- Overbought/Oversold Boxes: Orange boxes indicate overbought zones (RSI > OB), blue boxes indicate oversold zones (RSI < OS). Boxes expand dynamically in real-time.
- Candlestick Coloring: Candle colors align with the trend and box colors, reflecting RSI MA direction.
- Alerts: Set up alerts in TradingView for buy/sell signals, new overbought/oversold boxes, or RSI MA direction changes.
- Combining with Other Tools: Use the indicator alongside support/resistance levels, Fair Value Gaps (FVG), or other indicators to confirm signals.
█ APPLICATIONS
The "RXTrend" indicator is designed to identify key market zones and trend direction, making it useful for trend-following and reversal strategies. It enables:
- Trend Confirmation: Candlestick coloring and the trend line help assess the dominant market direction, supporting entry or exit decisions. The trend line can act as a significant support/resistance level, and a price bounce from it may provide a good entry point, especially when confirmed by Fibonacci levels. Additionally, the appearance of overbought/oversold boxes combined with a change in candle color (RSI MA direction) may indicate an impending correction. This allows analysis of potential market overextension and correction endings, enabling multiple entries within a trend.
- Overbought and Oversold Zone Identification: Boxes highlight potential reversal or correction points, especially when combined with support/resistance levels or FVG.
- Signal-Based Strategies: Buy and sell signals can be used as entry points in a trend or as warnings of potential reversals.
█ NOTES
- The indicator is universal and works across all markets and timeframes due to its RSI-based and price-mapping logic.
- Adjust settings (e.g., RSI length, OB/OS levels, smoothing) to suit your trading style and timeframe.
- Use in conjunction with other technical analysis tools to enhance signal accuracy.
Immediate Rebalance ICT [TradingFinder] No Imbalances - MTF Gaps🔵 Introduction
The concept of "Immediate Rebalance" in technical analysis is a powerful and advanced strategy within the ICT (Inner Circle Trader) framework, widely used to identify key market levels.
Unlike the "Fair Value Gap," which leaves a price gap requiring a retracement for a fill, an Immediate Rebalance fills the gap immediately, representing an instant balance that strengthens the prevailing market trend. This structure allows traders to quickly spot critical price zones, capitalizing on strong trend continuations without the need for price retracement.
The "Immediate Rebalance ICT" indicator leverages this concept, providing traders with automated identification of critical supply and demand zones, order blocks, liquidity voids, and key buy-side and sell-side liquidity levels.
Through features like crucial liquidity points and immediate rebalancing areas, this tool enables traders to perform precise real-time market analysis and seize profitable opportunities.
🔵 How to Use
The Immediate Rebalance indicator assists traders in identifying reliable trading signals by detecting and analyzing Immediate Rebalance zones. By focusing on supply and demand areas, the indicator pinpoints optimal entry and exit positions.
Here’s how to use the indicator in both bearish (Supply Immediate Rebalance) and bullish (Demand Immediate Rebalance) structures :
🟣 Bullish Structure (Demand Immediate Rebalance)
In a bullish scenario, the indicator detects a Demand Immediate Rebalance formed by two consecutive bullish candles with overlapping wicks. This structure signifies an immediate demand zone, where price instantly balances within the zone, reducing the likelihood of a revisit and indicating potential upside momentum.
Zone Identification : Look for two consecutive bullish candles with overlapping wicks, forming a demand zone. This structure, due to its rapid balance, usually does not require a revisit and supports further upward movement.
Entry and Exit Levels : If price revisits this zone, percentage markers, particularly 50% and 75%, act as supportive levels, creating ideal entry points for long positions.
Example : In the second image, an example of a Demand Immediate Rebalance is shown, where overlapping bullish candle shadows indicate immediate balance, supporting the continuation of the bullish trend.
🟣 Bearish Structure (Supply Immediate Rebalance)
In a bearish setup, the indicator identifies a Supply Immediate Rebalance when two consecutive bearish candles with overlapping wicks appear. This formation signals an immediate supply zone, suggesting a high probability of trend continuation to the downside, with minimal expectation for price to retrace back to this area.
Zone Identificatio n: Look for two consecutive bearish candles with overlapping shadows. This structure forms a supply area where price is expected to continue its downtrend without revisiting the zone.
Entry and Exit Level s: Should price revisit this zone, percentage-based levels (e.g., 50% and 75%) serve as potential resistance points, optimizing entry for short positions, especially if the downtrend is expected to persist.
Example : The attached chart illustrates a Supply Immediate Rebalance, where overlapping candle shadows define this area, reassuring traders of a continued downward trend with a low likelihood of price returning to this zone.
🔵 Settings
ImmR Filter : This filter allows users to adjust the detection of Immediate Rebalance zones in four modes, from "Very Aggressive" to "Very Defensive," based on zone width. The chosen mode controls the sensitivity of Immediate Rebalance detection, allowing users to fine-tune the indicator to their trading style.
Multi Time Frame : Enabling this option allows users to set the indicator to a specific timeframe (1 minute, 5 minutes, 15 minutes, 30 minutes, 1 hour, 4 hours, daily, weekly, or monthly), broadening the perspective for identifying Immediate Rebalance zones across multiple timeframes.
🔵 Conclusion
The Immediate Rebalance indicator, based on rapid balancing zones within supply and demand areas, serves as a powerful tool for market analysis and improving trade decision-making.
By accurately identifying zones where price achieves instant balance without gaps, the indicator highlights areas likely to support strong trend continuations, exempt from common retracements.
The indicator’s use of percentage levels enables traders to pinpoint optimal entry and exit points more effectively, with levels like 50% and 75% acting as support within demand zones and resistance within supply zones. This empowers traders to ride strong trends without the worry of abrupt reversals.
Overall, the Immediate Rebalance is a reliable tool for both professional and beginner traders seeking precise methods to recognize supply and demand zones, capitalizing on consistent trends.
By choosing appropriate settings and focusing on the zones highlighted by this indicator, traders can enter trades with greater confidence and improve their risk management.
Price SandwichFor the script in question
This script acts as an indicator that a potential short term or long term trend reversal is coming. Note that not every candle can be used as an indication and the smaller ones tend to have little to no effect, however they can be used alongside orderblocks or future support/resistance areas.
The best timeframes I've found these to be useable are on the 1m, 2m, or second charts.
You may use this as an added confluence that a trend is ending either short term or long term.
You may also decide to use this with other indicators to build further confluence.
Note that this is just something I've noticed personally most likely does not apply to all trend reversals.
Some ideas on how to use it:
If you extend a rectangle out from the block itself, you can often find the next high or low overlaps with said rectangle.
They may also overlap with a fair value gap that could make that gap have more potential.
Hope this is of use and can help with that added confluence or early warning signal of a potential reversal. This should not be used alone and it's recommended to not use this as a surefire indication of whether to take a trade.//Krindler
Script Breakdown
//@version=5 // this makes the script v5 friendly
indicator("Price Sandwich", overlay=true) //makes this script an indicator, overlay=true to make it a part of the main chart
// User input for the highlight color
userColor = input(color.green, title="Highlight Color") //This allows you to choose what color you want the candle to be in the settings
//Function to check the custom candle pattern based on whether the candle is being englulfed by both preceding and latter candle.
isCustomPattern() => //let's me look for a custom candle pattern
high > high and high < high and low < low and low > low
//this checks the candle before and the candle after to check that the candle in the middle doesn't escape the range of the candle before, or the candle afters highs and lows thus making it a sandwiched candle.
//high > high and high < high and low < low and low > low basically says: candle 1 high must be greater than candle 2 high and candle 2 high must be less than candle 3 high and candle 1 low must be less than candle 2 low and candle 2 low must be greater than candle 3 low. Thus making sure that candle 2 is within the range of candle's 1 and 3 and doesn't have a high or low that is either above or below candle 1 and 3. 'and' is the operator to make sure that all of these values must be true in order for that candle to meet the criteria of getting colored.
// Apply bar color to Sandwiched candle if candle is found.
barcolor(isCustomPattern() ? userColor : na, offset=-1) //this targets the findings from isCustomPattern() and uses the user color chosen in settings and colors the middle bar by using offset=-1, otherwise it would color candle 3, so offset goes back 1 candle to color the middle candle.
If this script is already in circulation, please let me know and i'll remove it immediately. I checked but couldn't find one that did it.
FVG w/ Fibs [QuantVue]The "FVG w/ Fibs" indicator is a trading tool designed to identify and visualize Fair Value Gaps (FVGs) while overlaying two Fibonacci retracement levels.
• Bullish FVG: Occurs when the low of the current bar is higher than the high of two bars ago, and the previous close is higher than the high of two bars ago.
• Bearish FVG: Occurs when the high of the current bar is lower than the low of two bars ago, and the previous close is lower than the low of two bars ago.
The indicator filters these gaps based on user-defined criteria such as the minimum percentage size of the gap.
Once identified, these FVGs are highlighted on the chart using customizable boxes and the 50% and 61.8% (default settings) Fibonacci retracement levels are calculated and drawn based on the size of the identified FVG.
• Dynamically updates and extends the boxes as the price evolves.
• Alerts / visual changes for FVGs that get filled.
• User option for fills by Wicks or Close
• User-customizable settings for box colors, styles, and Fibonacci level appearances
Give this indicator a BOOST and COMMENT your thoughts!
We hope you enjoy.
Cheers!
Three Bar Gap (Simple Price Action - with 1 line plot)This script is tailored towards experienced traders who prefer to view raw price charts during live execution. It searches for a three-bar pattern of what is colloquially called "fair value gap", or "imbalance" and uses a single line to plot the results. The goal is to display price in a way that is as simple as possible so that chart readers who don't prefer to add indicators on their screen will still find this indicator as an acceptable option to consider for.
From a code perspective, this script explores a new PineScript feature called UDT (user-defined types). This is an incredible update because it brings developers one step close to having the ability to create abstract data types.
█ What is price action?
Experienced traders will tell you that the chart that they use for live execution is raw, clean, and uses no indicators. They say they execute on price action, so what exactly is price action?
There is no formal definition to it, but one can agree that it implies the process of analyzing price without considering the fundamentals, without needing to know what the news was about, and without needing to know any of the Greeks (except for the desire to “seek alpha” Ha.haa...). This is not to say that price action traders are executing in their own vacuums without the need to know what is happening around the world. Surely fundamentals and financial models can be used beforehand for developing a bias for what is being traded, but it’s price-first at the moment of execution. That said, Factor (A) is Price.
Factor (B) is time-perception, it’s how the trader reads the tape. How the trader perceives price to change with respect to time is valuable information. Interpretation of "time" will be elaborated in the next section that talks about candlestick patterns detected by this script.
Putting this together, price action means the analysis of price movement by only considering (A) price, and (B) time, to predict which direction the market will move. A speculative trader is timing the market with the expectation to make a quick in-and-out profit; she/she is using price action. On the other hand, a long term investor holding a diversified portfolio with a strategy based on modern portfolio theory combined with fundamental analysis (at this point candlesticks are irrelevant) but has one additional criteria of, say, can only go Long on a stock when it has closed Green on Daily; he/she is also considered to be executing on price action.
█ Candlestick patterns
This script calculates the displacement of highs and lows over three consecutive bars.
A) Down move = When High of the recent confirmed bar is lower than the Low of the previous-previous candle
B) Up move = When Low of the recent confirmed bar is higher than the High of the previous-previous candle
(Note that its the confirmed bar that is being talked about, so it does not repaint)
An ATR filter will be applied to reduce the number of lines generated as many times they might just be associated with minor price changes.
Interpretations:
When price moves quickly across three bars, it can be thought that it has gapped. Although the candle in the middle appears to be solid, it’s not from a conceptual perspective. This is because time itself is arbitrary; timeframes don’t necessarily have to be fixed intervals. Take stocks with regular trading hours for example, if price makes a breakaway gap and you bundle the after-hours and pre-market sessions together as one candle, never minding that intervals should be fixed, then you will see the exact three-bar-gap patterns. Similar happens during intraday sessions on lower timeframes, if you zoom-in closer, you’ll see that ticks within the middle candle are sparsely dispersed. This is why it's called a gap.
█ Parameters with fixed inputs & assumptions used:
ATR is used for filtering out minor movements that will likely be deemed as irrelevant by trader for the purpose of live execution. The following inputs are required:
A) ATR lookback period
B) Multiplier
The product of ATR(len=A) and B produces a threshold for minimum distance that price must gap by. Initially, it was proposed to be only based on one ATR, but often an ATR is too wide and using it will filter out too many lines. Because of this observation, a multiplier (Parameter B) has been introduced to allow users to apply fractional ATR as a threshold.
█ Applications:
For trend followers: Follow the direction of the gap. Entering above recent high/low points above/below the first impulse with a stop-limit order is a viable tactic.
For contrarians fading a trend: The mid-point is a good point of reference for predicting potential areas of support/resistance.
Liquidity Void and Repair EngineLiquidity Void & Repair Engine
OVERVIEW
The Liquidity Void & Repair Engine is a high-fidelity institutional order flow tool designed to identify and track "Market Imbalances" or "Fair Value Gaps" (FVG). Unlike standard gap indicators that clutter the chart with every minor price jump, this engine uses Volatility-Adjusted Range Mapping to isolate high-conviction voids where price moved so rapidly that liquidity was left "unfilled."
The standout feature of this tool is its Active Repair Logic. The engine doesn't just draw static boxes; it monitors price action in real-time to determine when an imbalance has been "healed" by subsequent trading volume, providing a dynamic look at where the market has "unfinished business."
TECHNICAL LOGIC & ORIGINALITY
This script is published Open Source to contribute to the Pine Script community’s understanding of dynamic object management and order flow visualization.
ATR-Relative Filtering: To ensure only significant voids are plotted, the script uses a user-defined ATR (Average True Range) multiplier. This filters out market noise and focuses on institutional "impulse" moves.
Dynamic Box Management: Utilizing the Pine Script box array system, the script manages memory efficiently by updating existing objects rather than creating redundant ones.
The "Repair" Algorithm: The script tracks the high and low of every active void. When price action fully traverses the coordinates of a void, the script "seals" the box, visually marking the moment of liquidity equilibrium.
HOW TO USE
1. Identifying the "Magnet" (The Void)
When price moves aggressively, it leaves a "hole" in the auction.
Bullish Voids (Green): These represent areas where price surged so fast that buyers may still have unfilled orders sitting below. These act as Magnets for pullbacks.
Bearish Voids (Red): These represent areas where price plummeted, leaving a vacuum of selling pressure. These act as Magnets for relief rallies.
2. Trading the "Repair" Process
The Engine tracks how the market "repairs" these holes:
Partial Fill: If price enters a box but doesn't cross it, the "Magnet" is still active.
Full Repair: When a box is "sealed" (stops extending right), it indicates the imbalance is gone. If price "Seals" a green box and then bounces, it confirms the zone as Valid Institutional Support.
3. Confluence with the Trend
Continuation: In a strong uptrend, look for price to drop into a Green Bullish Void and find support. This is often the "Golden Entry" for trend followers.
Reversal Confirmation: If price ignores a Red Bearish Void and blasts right through it (sealing it instantly), it signals a massive shift in market regime and extreme bullish conviction.
USER SETTINGS
Lookback Period: How far back the engine searches for un-repaired gaps.
Min Gap Size (ATR %): Increase this to see only the "Major" institutional gaps; decrease it for a more granular intraday look.
Visual Styles: Fully customizable colors and transparency to match any chart theme (Dark/Light).
NOTES & DISCLAIMER
This script is a visualization of historical price imbalances and is intended for educational purposes only. It does not provide trade signals, entry/exit points, or financial advice. All trading involves risk.
First Presented FVGSummary: First Presented FVG Indicator
This is a Pine Script v6 TradingView indicator that identifies and visualizes the first Fair Value Gap (FVG) that forms within configurable time windows during a trading session.
What it Does
1. Detects FVGs : Uses the classic 3-candle FVG definition:
- Bullish FVG: When low > high (gap up)
- Bearish FVG: When high < low (gap down)
2. "First Presented" Logic : For each configured time slot, it captures only the first qualifying FVG that forms—subsequent FVGs in that window are ignored.
3. Visual Display :
- Draws a colored box spanning from detection time to session end
- Optional text label showing detection time (e.g., "9:38 Tue FP FVG")
- Optional grade lines at 25%, 50%, and 75% levels within the FVG
Key Configuration
Setting Description
Timeframe Only works on 5-minute charts or lower
Timezone IANA timezone for session times (default: America/New_York)
Session Futures trading hours (default: 1800-1715)
Min FVG Size Minimum gap size in ticks to qualify
4 Time Slots Each with enable toggle, time window, and color
Default Time Slots
Slot 1 (enabled): 09:30-10:30 — lime green
Slot 2 (enabled): 13:30-14:30 — blue
Slot 3 (disabled): 13:00-13:30 — teal
Slot 4 (disabled): 14:15-14:45 — fuchsia
Technical Features
Handles cross-midnight sessions correctly
Resets all drawings at each new session
Skips the first bar of each window to ensure valid 3-candle lookback
Clamps slot windows to session boundaries
SMC N-Gram Probability Matrix [PhenLabs]📊 SMC N-Gram Probability Matrix
Version: PineScript™ v6
📌 Description
The SMC N-Gram Probability Matrix applies computational linguistics methodology to Smart Money Concepts trading. By treating SMC patterns as a discrete “alphabet” and analyzing their sequential relationships through N-gram modeling, this indicator calculates the statistical probability of which pattern will appear next based on historical transitions.
Traditional SMC analysis is reactive—traders identify patterns after they form and then anticipate the next move. This indicator inverts that approach by building a transition probability matrix from up to 5,000 bars of pattern history, enabling traders to see which SMC formations most frequently follow their current market sequence.
The indicator detects and classifies 11 distinct SMC patterns including Fair Value Gaps, Order Blocks, Liquidity Sweeps, Break of Structure, and Change of Character in both bullish and bearish variants, then tracks how these patterns transition from one to another over time.
🚀 Points of Innovation
First indicator to apply N-gram sequence modeling from computational linguistics to SMC pattern analysis
Dynamic transition matrix rebuilds every 50 bars for adaptive probability calculations
Supports bigram (2), trigram (3), and quadgram (4) sequence lengths for varying analysis depth
Priority-based pattern classification ensures higher-significance patterns (CHoCH, BOS) take precedence
Configurable minimum occurrence threshold filters out statistically insignificant predictions
Real-time probability visualization with graphical confidence bars
🔧 Core Components
Pattern Alphabet System: 11 discrete SMC patterns encoded as integers for efficient matrix indexing and transition tracking
Swing Point Detection: Uses ta.pivothigh/pivotlow with configurable sensitivity for non-repainting structure identification
Transition Count Matrix: Flattened array storing occurrence counts for all possible pattern sequence transitions
Context Encoder: Converts N-gram pattern sequences into unique integer IDs for matrix lookup
Probability Calculator: Transforms raw transition counts into percentage probabilities for each possible next pattern
🔥 Key Features
Multi-Pattern SMC Detection: Simultaneously identifies FVGs, Order Blocks, Liquidity Sweeps, BOS, and CHoCH formations
Adjustable N-Gram Length: Choose between 2-4 pattern sequences to balance specificity against sample size
Flexible Lookback Range: Analyze anywhere from 100 to 5,000 historical bars for matrix construction
Pattern Toggle Controls: Enable or disable individual SMC pattern types to customize analysis focus
Probability Threshold Filtering: Set minimum occurrence requirements to ensure prediction reliability
Alert Integration: Built-in alert conditions trigger when high-probability predictions emerge
🎨 Visualization
Probability Table: Displays current pattern, recent sequence, sample count, and top N predicted patterns with percentage probabilities
Graphical Probability Bars: Visual bar representation (█░) showing relative probability strength at a glance
Chart Pattern Markers: Color-coded labels placed directly on price bars identifying detected SMC formations
Pattern Short Codes: Compact notation (F+, F-, O+, O-, L↑, L↓, B+, B-, C+, C-) for quick pattern identification
Customizable Table Position: Place probability display in any corner of your chart
📖 Usage Guidelines
N-Gram Configuration
N-Gram Length: Default 2, Range 2-4. Lower values provide more samples but less specificity. Higher values capture complex sequences but require more historical data.
Matrix Lookback Bars: Default 500, Range 100-5000. More bars increase statistical significance but may include outdated market behavior.
Min Occurrences for Prediction: Default 2, Range 1-10. Higher values filter noise but may reduce prediction availability.
SMC Detection Settings
Swing Detection Length: Default 5, Range 2-20. Controls pivot sensitivity for structure analysis.
FVG Minimum Size: Default 0.1%, Range 0.01-2.0%. Filters insignificant gaps.
Order Block Lookback: Default 10, Range 3-30. Bars to search for OB formations.
Liquidity Sweep Threshold: Default 0.3%, Range 0.05-1.0%. Minimum wick extension beyond swing points.
Display Settings
Show Probability Table: Toggle the probability matrix display on/off.
Show Top N Probabilities: Default 5, Range 3-10. Number of predicted patterns to display.
Show SMC Markers: Toggle on-chart pattern labels.
✅ Best Use Cases
Anticipating continuation or reversal patterns after liquidity sweeps
Identifying high-probability BOS/CHoCH sequences for trend trading
Filtering FVG and Order Block signals based on historical follow-through rates
Building confluence by comparing predicted patterns with other technical analysis
Studying how SMC patterns typically sequence on specific instruments or timeframes
⚠️ Limitations
Predictions are based solely on historical pattern frequency and do not account for fundamental factors
Low sample counts produce unreliable probabilities—always check the Samples display
Market regime changes can invalidate historical transition patterns
The indicator requires sufficient historical data to build meaningful probability matrices
Pattern detection uses standardized parameters that may not capture all institutional activity
💡 What Makes This Unique
Linguistic Modeling Applied to Markets: Treats SMC patterns like words in a language, analyzing how they “flow” together
Quantified Pattern Relationships: Transforms subjective SMC analysis into objective probability percentages
Adaptive Learning: Matrix rebuilds periodically to incorporate recent pattern behavior
Comprehensive SMC Coverage: Tracks all major Smart Money Concepts in a unified probability framework
🔬 How It Works
1. Pattern Detection Phase
Each bar is analyzed for SMC formations using configurable detection parameters
A priority hierarchy assigns the most significant pattern when multiple detections occur
2. Sequence Encoding Phase
Detected patterns are stored in a rolling history buffer of recent classifications
The current N-gram context is encoded into a unique integer identifier
3. Matrix Construction Phase
Historical pattern sequences are iterated to count transition occurrences
Each context-to-next-pattern transition increments the appropriate matrix cell
4. Probability Calculation Phase
Current context ID retrieves corresponding transition counts from the matrix
Raw counts are converted to percentages based on total context occurrences
5. Visualization Phase
Probabilities are sorted and the top N predictions are displayed in the table
Chart markers identify the current detected pattern for visual reference
💡 Note:
This indicator performs best when used as a confluence tool alongside traditional SMC analysis. The probability predictions highlight statistically common pattern sequences but should not be used as standalone trading signals. Always verify predictions against price action context, higher timeframe structure, and your overall trading plan. Monitor the sample count to ensure predictions are based on adequate historical data.
Directional Strength and Momentum Index█ OVERVIEW
“Directional Strength and Momentum Index” (DSMI) is a technical analysis indicator inspired by DMI, but due to different source data, it produces distinct results. DSMI combines direction measurement, trend strength, and overheat levels into a single index, enhanced with gradient fills, extreme zones, entry signals, candle coloring, and a summary table.
█ CONCEPT
The classic DMI, despite its relatively simple logic, can seem somewhat chaotic due to separate +DI and -DI lines and the need for manual interpretation of their relationships. The DSMI indicator was created to increase clarity and speed up results, consolidating key information into a single index from 0 to 100 that simultaneously:
- Indicates trend direction (bullish/bearish)
- Measures movement strength
- Identifies overheat levels
- Generates ready entry signals
DMI (ADX + +DI / -DI) measures trend direction and strength, but does so based solely on comparing price movements between candles. ADX shows whether the trend is orderly and growing (e.g., above 20–30), but does not assess how dynamic the movement is.
DSMI, on the other hand, takes into account candle size and actual market aggression, thus showing directional momentum — whether the trend has real “fuel” to sustain or accelerate, not just whether it is orderly.
The main calculation difference involves replacing True Range with candle size (high-low) and using directional EMA instead of Wilder smoothing. This allows DSMI to react faster to momentum changes, eliminating delays typical of classic DMI based on TR.
This gives the trader an immediate picture of the market situation without analyzing multiple lines.
█ FEATURES
DSMI Main Line:
- EMA(Directional Index) based on +DS and -DS
- Scale 0–100, smooth color gradient depending on strength
+DS / -DS:
- Positive and Negative Directional Strength
- Gradient fill between lines — more intense with stronger trend
Extreme Zones:
- Default 20 and 80
- Gradient fill outside zones
Trend Strength Levels:
- Weak (<10) → neutral
- Moderate (up to 35)
- Strong (up to 45)
- Overheated (up to 55)
- Extreme (>55)
All levels editable
Entry Signals:
- Activated on crossing entry level (default 20)
Or on direction change when DSMI already ≥ entry level
- Highlighted background (green/red)
Candle Coloring:
- According to current trend
Trend Strength Table:
- Top-right corner
- Shows current strength (WEAK/STRONG etc.) + DSMI value
Alerts:
- DSMI Bullish Entry
- DSMI Bearish Entry
█ HOW TO USE
Add to Chart: Paste code in Pine Editor or find in indicator library.
Settings:
DSMI Parameters:
- DSMI Period → default 20
- Show DSMI Line → on/off
Extreme Zones:
- Lower Level → default 20
- Upper Level → default 80
Trend Strength Levels:
- Weak, Moderate, Strong, Overheated → adjust to strategy
Trend Colors:
- BULLISH → default green
- BEARISH → default red
- NEUTRAL → gray
Entry Signals:
- Show Highlight → on/off
- DSMI Entry Level → default 20
Signal Interpretation:
- DSMI Line: Main strength indicator.
- Gradient between +DS and -DS: Visualizes side dominance.
- Crossing 18 with direction confirmation → entry signal.
- Extreme Zones: Potential reversal or continuation points after correction.
- Table: Quick overview of current trend condition.
█ APPLICATIONS
The indicator works well in:
- Trend-following: Enter on signal, exit on direction change or overheat. When a new trend appears, consider entering a position, preferably with a rising trend strength indicator.
- Scalping/daytrading: Shorter period (7–10), lower entry level.
- Swing/position: Longer period (20–30), higher entry level, extreme zones as filters.
- Noise filtering: Ignores consolidation below “Weak” – increasing value e.g. to 15 highlights consolidation zones, but no signals appear there.
Style Adjustment:
- Aggressive strategies → shorten period and entry level
- Conservative → extend period, raise entry level (25–30), watch “Overheated”
“Weak” level (<10 default) → neutral; increasing it e.g. to 15 gives fewer but higher-quality signals. The Weak zone value controls the level below which no signals appear, and the gradient turns gray (often aligned with consolidation zones).
Combine with:
- Support/resistance levels
- Fair Value Gaps (FVG)
- Volume (Volume Profile, VWAP)
- Other oscillators (RSI, Stochastic)
█ NOTES
- Works on all markets and timeframes.
- Adjust period and levels to instrument volatility.
- Higher entry level → fewer signals, higher quality.
- Neutral color below “Weak” – avoids trading in consolidation.
- Gradient and table enable quick assessment without line analysis.
FvgPanel█ OVERVIEW
This library provides functionalities for creating and managing a display panel within a Pine Script™ indicator. Its primary purpose is to offer a structured way to present Fair Value Gap (FVG) information, specifically the nearest bullish and bearish FVG levels across different timeframes (Current, MTF, HTF), directly on the chart. The library handles the table's structure, header initialization, and dynamic cell content updates.
█ CONCEPTS
The core of this library revolves around presenting summarized FVG data in a clear, tabular format. Key concepts include:
FVG Data Aggregation and Display
The panel is designed to show at-a-glance information about the closest active FVG mitigation levels. It doesn't calculate these FVGs itself but relies on the main script to provide this data. The panel is structured with columns for timeframes (TF), Bullish FVGs, and Bearish FVGs, and rows for "Current" (LTF), "MTF" (Medium Timeframe), and "HTF" (High Timeframe).
The `panelData` User-Defined Type (UDT)
To facilitate the transfer of information to be displayed, the library defines a UDT named `panelData`. This structure is central to the library's operation and is designed to hold all necessary values for populating the panel's data cells for each relevant FVG. Its fields include:
Price levels for the nearest bullish and bearish FVGs for LTF, MTF, and HTF (e.g., `nearestBullMitLvl`, `nearestMtfBearMitLvl`).
Boolean flags to indicate if these FVGs are classified as "Large Volume" (LV) (e.g., `isNearestBullLV`, `isNearestMtfBearLV`).
Color information for the background and text of each data cell, allowing for conditional styling based on the FVG's status or proximity (e.g., `ltfBullBgColor`, `mtfBearTextColor`).
The design of `panelData` allows the main script to prepare all display-related data and styling cues in one object, which is then passed to the `updatePanel` function for rendering. This separation of data preparation and display logic keeps the library focused on its presentation task.
Visual Cues and Formatting
Price Formatting: Price levels are formatted to match the instrument's minimum tick size using an internal `formatPrice` helper function, ensuring consistent and accurate display.
Large FVG Icon: If an FVG is marked as a "Large Volume" FVG in the `panelData` object, a user-specified icon (e.g., an emoji) is prepended to its price level in the panel, providing an immediate visual distinction.
Conditional Styling: The background and text colors for each FVG level displayed in the panel can be individually controlled via the `panelData` object, enabling the main script to implement custom styling rules (e.g., highlighting the overall nearest FVG across all timeframes).
Handling Missing Data: If no FVG data is available for a particular cell (i.e., the corresponding level in `panelData` is `na`), the panel displays "---" and uses a specified background color for "Not Available" cells.
█ CALCULATIONS AND USE
Using the `FvgPanel` typically involves a two-stage process: initialization and dynamic updates.
Step 1: Panel Creation
First, an instance of the panel table is created once, usually during the script's initial setup. This is done using the `createPanel` function.
Call `createPanel()` with parameters defining its position on the chart, border color, border width, header background color, header text color, and header text size.
This function initializes the table with three columns ("TF", "Bull FVG", "Bear FVG") and three data rows labeled "Current", "MTF", and "HTF", plus a header row.
Store the returned `table` object in a `var` variable to persist it across bars.
// Example:
var table infoPanel = na
if barstate.isfirst
infoPanel := panel.createPanel(
position.top_right,
color.gray,
1,
color.new(color.gray, 50),
color.white,
size.small
)
Step 2: Panel Updates
On each bar, or whenever the FVG data changes (typically on `barstate.islast` or `barstate.isrealtime` for efficiency), the panel's content needs to be refreshed. This is done using the `updatePanel` function.
Populate an instance of the `panelData` UDT with the latest FVG information. This includes setting the nearest bullish/bearish mitigation levels for LTF, MTF, and HTF, their LV status, and their desired background and text colors.
Call `updatePanel()`, passing the persistent `table` object (from Step 1), the populated `panelData` object, the icon string for LV FVGs, the default text color for FVG levels, the background color for "N/A" cells, and the general text size for the data cells.
The `updatePanel` function will then clear previous data and fill the table cells with the new values and styles provided in the `panelData` object.
// Example (inside a conditional block like 'if barstate.islast'):
var panelData fvgDisplayData = panelData.new()
// ... (logic to populate fvgDisplayData fields) ...
// fvgDisplayData.nearestBullMitLvl = ...
// fvgDisplayData.ltfBullBgColor = ...
// ... etc.
if not na(infoPanel)
panel.updatePanel(
infoPanel,
fvgDisplayData,
"🔥", // LV FVG Icon
color.white,
color.new(color.gray, 70), // NA Cell Color
size.small
)
This workflow ensures that the panel is drawn only once and its cells are efficiently updated as new data becomes available.
█ NOTES
Data Source: This library is solely responsible for the visual presentation of FVG data in a table. It does not perform any FVG detection or calculation. The calling script must compute or retrieve the FVG levels, LV status, and desired styling to populate the `panelData` object.
Styling Responsibility: While `updatePanel` applies colors passed via the `panelData` object, the logic for *determining* those colors (e.g., highlighting the closest FVG to the current price) resides in the calling script.
Performance: The library uses `table.cell()` to update individual cells, which is generally more efficient than deleting and recreating the table on each update. However, the frequency of `updatePanel` calls should be managed by the main script (e.g., using `barstate.islast` or `barstate.isrealtime`) to avoid excessive processing on historical bars.
`series float` Handling: The price level fields within the `panelData` UDT (e.g., `nearestBullMitLvl`) can accept `series float` values, as these are typically derived from price data. The internal `formatPrice` function correctly handles `series float` for display.
Dependencies: The `FvgPanel` itself is self-contained and does not import other user libraries. It uses standard Pine Script™ table and string functionalities.
█ EXPORTED TYPES
panelData
Represents the data structure for populating the FVG information panel.
Fields:
nearestBullMitLvl (series float) : The price level of the nearest bullish FVG's mitigation point (bottom for bull) on the LTF.
isNearestBullLV (series bool) : True if the nearest bullish FVG on the LTF is a Large Volume FVG.
ltfBullBgColor (series color) : Background color for the LTF bullish FVG cell in the panel.
ltfBullTextColor (series color) : Text color for the LTF bullish FVG cell in the panel.
nearestBearMitLvl (series float) : The price level of the nearest bearish FVG's mitigation point (top for bear) on the LTF.
isNearestBearLV (series bool) : True if the nearest bearish FVG on the LTF is a Large Volume FVG.
ltfBearBgColor (series color) : Background color for the LTF bearish FVG cell in the panel.
ltfBearTextColor (series color) : Text color for the LTF bearish FVG cell in the panel.
nearestMtfBullMitLvl (series float) : The price level of the nearest bullish FVG's mitigation point on the MTF.
isNearestMtfBullLV (series bool) : True if the nearest bullish FVG on the MTF is a Large Volume FVG.
mtfBullBgColor (series color) : Background color for the MTF bullish FVG cell.
mtfBullTextColor (series color) : Text color for the MTF bullish FVG cell.
nearestMtfBearMitLvl (series float) : The price level of the nearest bearish FVG's mitigation point on the MTF.
isNearestMtfBearLV (series bool) : True if the nearest bearish FVG on the MTF is a Large Volume FVG.
mtfBearBgColor (series color) : Background color for the MTF bearish FVG cell.
mtfBearTextColor (series color) : Text color for the MTF bearish FVG cell.
nearestHtfBullMitLvl (series float) : The price level of the nearest bullish FVG's mitigation point on the HTF.
isNearestHtfBullLV (series bool) : True if the nearest bullish FVG on the HTF is a Large Volume FVG.
htfBullBgColor (series color) : Background color for the HTF bullish FVG cell.
htfBullTextColor (series color) : Text color for the HTF bullish FVG cell.
nearestHtfBearMitLvl (series float) : The price level of the nearest bearish FVG's mitigation point on the HTF.
isNearestHtfBearLV (series bool) : True if the nearest bearish FVG on the HTF is a Large Volume FVG.
htfBearBgColor (series color) : Background color for the HTF bearish FVG cell.
htfBearTextColor (series color) : Text color for the HTF bearish FVG cell.
█ EXPORTED FUNCTIONS
createPanel(position, borderColor, borderWidth, headerBgColor, headerTextColor, headerTextSize)
Creates and initializes the FVG information panel (table). Sets up the header rows and timeframe labels.
Parameters:
position (simple string) : The position of the panel on the chart (e.g., position.top_right). Uses position.* constants.
borderColor (simple color) : The color of the panel's border.
borderWidth (simple int) : The width of the panel's border.
headerBgColor (simple color) : The background color for the header cells.
headerTextColor (simple color) : The text color for the header cells.
headerTextSize (simple string) : The text size for the header cells (e.g., size.small). Uses size.* constants.
Returns: The newly created table object representing the panel.
updatePanel(panelTable, data, lvIcon, defaultTextColor, naCellColor, textSize)
Updates the content of the FVG information panel with the latest FVG data.
Parameters:
panelTable (table) : The table object representing the panel to be updated.
data (panelData) : An object containing the FVG data to display.
lvIcon (simple string) : The icon (e.g., emoji) to display next to Large Volume FVGs.
defaultTextColor (simple color) : The default text color for FVG levels if not highlighted.
naCellColor (simple color) : The background color for cells where no FVG data is available ("---").
textSize (simple string) : The text size for the FVG level data (e.g., size.small).
Returns: _void
ICT Concepts: MML, Order Blocks, FVG, OTECore ICT Trading Concepts
These strategies are designed to identify high-probability trading opportunities by analyzing institutional order flow and market psychology.
1. Market Maker Liquidity (MML) / Liquidity Pools
Idea: Institutional traders ("market makers") place orders around key price levels where retail traders’ stop losses cluster (e.g., above swing highs or below swing lows).
Application: Look for "liquidity grabs" where price briefly spikes to these levels before reversing.
Example: If price breaks a recent high but reverses sharply, it may indicate a liquidity grab to trigger retail stops before a trend reversal.
2. Order Blocks (OB)
Idea: Institutional orders are often concentrated in specific price zones ("order blocks") where large buy/sell decisions occurred.
Application: Identify bullish order blocks (strong buying zones) or bearish order blocks (strong selling zones) on higher timeframes (e.g., 1H/4H charts).
Example: A bullish order block forms after a strong rally; price often retests this zone later as support.
3. Fair Value Gap (FVG)
Idea: A price imbalance occurs when candles gap without overlapping, creating an area of "unfair" price that the market often revisits.
Application: Trade the retracement to fill the FVG. A bullish FVG acts as support, and a bearish FVG acts as resistance.
Example: Three consecutive candles create a gap; price later returns to fill this gap, offering a entry point.
4. Time-Based Analysis (NY Session, London Kill Zones)
Idea: Institutional activity peaks during specific times (e.g., 7 AM – 11 AM New York time).
Application: Focus on trades during high-liquidity periods when banks and hedge funds are active.
Example: The "London Kill Zone" (2 AM – 5 AM EST) often sees volatility due to European market openings.
5. Optimal Trade Entry (OTE)
Idea: A retracement level (similar to Fibonacci retracement) where institutions re-enter trends after a pullback.
Application: Look for 62–79% retracements in a trend to align with institutional accumulation/distribution zones.
Example: In an uptrend, price retraces 70% before resuming upward—enter long here.
6. Stop Hunts
Idea: Institutions manipulate price to trigger retail stop losses before reversing direction.
Application: Avoid placing stops at obvious levels (e.g., above/below recent swings). Instead, use wider stops or wait for confirmation.
Dabel MS + FVGThis script is designed to assist traders by identifying market structures, imbalances, and potential trade opportunities using Break of Structure (BOS) and Market Structure Shifts (MSS). It visually highlights imbalances in price action, key pivots, and market structure changes, providing actionable information for making trading decisions.
Key features:
Imbalances Detection: Highlights bullish and bearish price gaps (Fair Value Gaps) using colored boxes. Users can choose the line style (solid, dashed, or dotted) for imbalance midlines.
Market Structure Analysis: Tracks pivot highs and lows to identify BOS and MSS in two separate market structures with adjustable pivot strengths.
Customizable Visualization: Allows users to choose line styles, colors, and display options for both imbalances and market structures.
Alerts: Alerts traders when BOS or MSS occur, helping to monitor the market effectively.
Trading Strategy
Imbalance Trading:
Imbalances (gaps) represent areas where supply or demand was left unfilled. These gaps often act as magnet zones where the price revisits to fill.
Bullish Imbalance: Look for buying opportunities when price enters a green imbalance zone.
Bearish Imbalance: Look for selling opportunities when price enters a red imbalance zone.
Use the midline of the imbalance box as a key reference point for potential reversals.
Break of Structure (BOS) and Market Structure Shift (MSS):
BOS: Indicates a continuation of the existing trend. For example:
Bullish BOS: Look for continuation in the uptrend after a high is broken.
Bearish BOS: Look for continuation in the downtrend after a low is broken.
MSS: Suggests a potential reversal in market structure. For example:
Bullish MSS: Indicates a possible shift from a bearish to bullish market.
Bearish MSS: Indicates a potential shift from a bullish to bearish market.
Multiple Market Structures:
This script provide two sets of market structures, allowing traders to compare short-term and long-term trends.
Adjust the pivot strength to suit your trading style (lower for intraday trading, higher for swing or positional trading).
Entry and Exit:
Entry: Look for entries near imbalances or after confirmed BOS/MSS in line with the overall trend.
Exit: Place stop-loss below/above recent pivots and take profit at nearby support/resistance or imbalance zones.
For New Traders
Focus on Basics: Understand what BOS and MSS mean and how they signal trend direction or reversals.
Use Alerts: Rely on the script's alert system to catch important moments without staring at charts all day.
Start Small: Test this strategy on a demo account before using it live. You can understand it more with practice.
Multi-Timeframe FVG [TFO]The goal of this indicator is to find Fair Value Gaps (FVGs) that overlap on multiple timeframes. FVGs are already meant to be “sensitive” areas where one might expect price to react from, therefore FVGs that overlap on multiple timeframes could provide even more confluence that there may be a reaction in said area (with proper context).
Mitigation Type allows users to select how FVGs should be mitigated, either by wick or by completely closing through the area.
The displacement option helps to filter out smaller FVGs by looking for areas where price ran rather quickly (causing displacement). This is done by comparing the candle that made the FVG to a fractional ATR value, so that one may fine-tune how much “larger” the candle range needs to be, relative to recent price action.
The timeframe alignment option allows users to select how many timeframes must be converging in order to draw FVGs. For instance, with all timeframes selected, a timeframe alignment value of 2 would require that there be overlapping FVGs on 2 or more timeframes. A value of 3 would require that there be overlapping FVGs on all 3 timeframes in order for them to be drawn.
ICT Concepts [Kodexius]ICT Concepts is an all in one, chart overlay toolkit that combines several widely used ICT style components into a single, modular workflow. It is designed to help you map higher timeframe context, track directional structure, and refine execution areas with imbalance and liquidity concepts, without turning the chart into a cluttered drawing board.
Instead of plotting everything indefinitely, each module focuses on “live relevance” and chart readability. Zones, lines, and labels are managed with sensible limits so the most recent and most meaningful structures remain visible while older objects are automatically retired.
Because the system is modular, you can run it like a complete toolkit:
- Use multi timeframe Order Blocks to define high probability zones
- Use Market Structure (BOS and MSS) for bias and context
- Validate intent with SMT Divergence when you want intermarket confirmation
- Refine with Imbalances (FVG, BPR, CE) and Liquidity Sweeps
- Add timing structure via Killzones and risk structure via auto Fibonacci
🔹 Features
🔸 Multi Timeframe Order Blocks (3 candle displacement OB)
The OB engine detects a strict 3 candle displacement sequence (bull and bear) and projects the “order block candle” as a forward extending zone. Detection can run on the chart timeframe or on a user selected higher timeframe and then be displayed on your execution chart.
🔸 Overlap Control
Before adding a new OB, the script checks overlap against existing zones of the same direction. If a new zone intersects an existing one, it is ignored to reduce redundant stacking in the same price area.
🔸 Automatic Extension and Mitigation for Order Blocks
OB zones extend forward on every bar and are removed once mitigation is confirmed. Mitigation is evaluated by close breaking decisively beyond the relevant boundary:
- Bullish OB mitigates when close prints below the OB bottom
- Bearish OB mitigates when close prints above the OB top
🔸 Market Structure (BOS and MSS)
Market Structure is built from swing pivots using a configurable pivot length. When price closes through the latest swing, the script prints a structure event:
BOS (Break of Structure) for continuation
MSS (Market Structure Shift) for a directional change
To keep the chart readable, older structure drawings are capped by history limits.
🔸 SMT Divergence with optional mini panel
SMT can compare the current instrument with a user selected symbol to highlight divergence at swing points. A divergence is flagged when one market makes a new swing extreme while the other fails to confirm.
Optional: a compact right side “compare symbol” candle panel can be enabled so you can visually confirm what the secondary market is doing without leaving the chart.
🔸 Imbalances: FVG, BPR, and CE modes
You can choose between three imbalance views depending on your style:
FVG mode: Fair Value Gaps are plotted as extending zones
CE mode: Consequent Encroachment is visualized using a midpoint line and a half zone fill
BPR mode: Balanced Price Range is formed when a new FVG overlaps an opposing FVG, producing a “balanced” region that often behaves differently than a standalone gap
🔸 Automatic extension, limits, and mitigation for imbalances
Imbalance objects extend forward until mitigated. Mitigation uses wick based logic:
Bullish imbalance mitigates when price wicks below the zone bottom
Bearish imbalance mitigates when price wicks above the zone top
The script also enforces per side limits and removes older items to keep performance stable.
🔸 Liquidity sweeps (buyside and sellside)
The liquidity module tracks swing highs and lows and marks sweep events when price runs the level and then closes back through it, which often behaves like a rejection signal. Sweeps are visualized with a level line plus a small sweep highlight box, with an optional history cap.
🔸 Auto anchored Fibonacci (EQ and OTE focus)
Fibonacci levels are automatically anchored using the most recent structure context so you do not need to manually re draw fibs every time the market evolves. EQ and OTE focused bands are plotted to support common premium discount style workflows, with optional extra levels if desired.
🔸 Killzones (session boxes with optional range tracking)
Asian, London Open, New York AM, and New York PM killzones can be displayed using UTC-5 session definitions. Session boxes dynamically expand as new highs and lows are formed during the session, and historical zones can be retained up to a user set count. Rendering is restricted to intraday timeframes up to 60 minutes for clean scaling and performance.
🔹 Calculations
1) Order Block detection (3 candle displacement)
The OB pattern is defined inside detectLogic() . The zone boundaries always come from candle (the middle candle of the 3 candle sequence).
detectLogic() =>
bool isBull = open > close and close > open and close > open and low < low and close > high
bool isBear = open < close and close < open and close < open and high > high and close < low
[isBull, high , low , time , isBear, high , low , time ]
Interpretation (bullish side):
Candle is bearish
Candle is bullish (the OB candle)
Current candle is bullish and closes above high
low undercuts low to form the sweep style condition
Bearish logic is the mirrored inverse.
2) Multi timeframe projection and duplicate control
If the timeframe input is set, detections are computed on that timeframe and projected onto the current chart using request.security . A last processed time check prevents duplicate prints.
=
request.security(syminfo.tickerid, i_tf, detectLogic())
var int lastBullTime = 0
var int lastBearTime = 0
if mtf_isBull and mtf_bullTime != lastBullTime
lastBullTime := mtf_bullTime
if mtf_isBear and mtf_bearTime != lastBearTime
lastBearTime := mtf_bearTime
3) OB overlap validation and mitigation
Overlap is checked before pushing a new zone, then zones are extended and removed once mitigated by close.
method hasOverlap(array OBs, float top, float bottom) =>
bool overlap = false
if OBs.size() > 0
for i = 0 to OBs.size() - 1
OB item = OBs.get(i)
if (top < item.top and top > item.bottom) or (bottom > item.bottom and bottom < item.top)
overlap := true
break
overlap
method isMitigated(OB this, float currentClose) =>
this.isBull ? (currentClose < this.bottom) : (currentClose > this.top)
4) Market Structure: pivots, BOS, and MSS
Swings are derived from pivots; then BOS/MSS prints when price crosses the latest swing. The script tracks trend state to decide whether the break is continuation (BOS) or shift (MSS).
float ph = ta.pivothigh(i_structLen, i_structLen)
float pl = ta.pivotlow(i_structLen, i_structLen)
bool brokenHigh = ta.crossover(close, lastHigh)
bool brokenLow = ta.crossunder(close, lastLow)
// drawStructure(..., "BOS", ...) or drawStructure(..., "MSS", ...) depending on trend state
5) SMT Divergence conditions
SMT uses pivot highs/lows on both instruments. A bearish SMT prints when the main chart makes a higher high but the compare symbol fails to exceed its prior high. A bullish SMT prints when the main chart makes a lower low but the compare symbol fails to make a lower low.
bool bearishSmt = not na(smtAHighPrev) and not na(smtBHighPrev) and (smtAHighLast > smtAHighPrev) and (smtBHighLast <= smtBHighPrev)
bool bullishSmt = not na(smtALowPrev) and not na(smtBLowPrev) and (smtALowLast < smtALowPrev) and (smtBLowLast >= smtBLowPrev)
6) FVG detection, BPR construction, and CE level
FVGs are detected via a classic 3 bar gap condition. When a new FVG overlaps an opposing FVG, the script builds a BPR using the intersecting region. CE is the midpoint (top + bottom) / 2, plotted as a dashed line plus a half fill box.
bool fvgBullDetected = low > high
bool fvgBearDetected = high < low
// CE
float ceLevel = (this.top + this.bottom) / 2
Imbalance mitigation uses wick logic:
method isMitigated(FVG this, float currentHigh, float currentLow) =>
this.isBull ? (currentLow < this.bottom) : (currentHigh > this.top)
7) Liquidity sweep trigger
A sweep is confirmed only when price runs the pivot level and closes back through it (reject style).
bool sweepBull = i_showLiq and not na(liqLastLow) and not liqLastLowSwept and low < liqLastLow and close > liqLastLow
bool sweepBear = i_showLiq and not na(liqLastHigh) and not liqLastHighSwept and high > liqLastHigh and close < liqLastHigh
8) Killzone session mapping
Sessions are defined in UTC-5 using time() session strings.
string kzTz = "UTC-5"
kzInSession(string sess) =>
not na(time(timeframe.period, sess, kzTz))
bool inAsian = kzInSession("2000-0000")
bool inLondon = kzInSession("0200-0500")
bool inNY = kzInSession("0830-1100")
Daytrading Suite: Neon TPO + FVG v6.1Here is the summary of the code and the trading guide in English.
---
### 1. Code Summary: What does the chart show?
The script combines three dimensions of trading into a single chart:
* **The Context (TPO / Market Profile - Yesterday):**
* **Gold Zone (Center):** Yesterday's **POC (Point of Control)**. This was the "fairest price". It often acts as a magnet.
* **White Dashed Lines:** The **VAH (Value Area High)** and **VAL (Value Area Low)**. Yesterday, 70% of all trading volume happened between these lines. This is the area of "Balance".
* **The Structure (HTF - 1 Hour+):**
* **Red/Green Boxes (Right Edge):** Automatic **Supply & Demand Zones** based on the 1-hour chart (or your setting). They indicate major resistance and support levels.
* **The Timing (Entries):**
* **Neon FVG Boxes (Small):** "Fair Value Gaps". These represent imbalances in price. If price revisits these, it is often your **entry signal**.
* **Lines (VWAP, EMA, PDH/PDL):** Act as dynamic support and trend indicators.
---
### 2. Trading Strategy: How to use it
Do not just trade every colored spot. You must combine **Location (TPO)** with **Signal (FVG)**.
#### Step A: The Open (Where are we?)
In the morning (or at the US Open), check where the price is relative to the **white TPO lines**.
1. **Inside the White Lines (In Balance):**
* The market is undecided. Expect ranging/choppy behavior.
* **Strategy:** Buy at the bottom edge (VAL), Sell at the top edge (VAH). The target is often the Gold Zone (POC) in the middle.
2. **Outside the White Lines (Imbalance):**
* The market is seeking new prices. Danger of a Trend!
* **Strategy:** If price breaks above VAH and tests it from above -> **Long**. If it breaks below VAL -> **Short**.
#### Step B: The Setup (The High Probability Scenario)
Here is the "Rejection" Setup (Long Example):
1. Price drops to the lower white line (**VAL**) or into a green **Demand Zone**.
2. It bounces (shows a wick).
3. In the process, a small **green Neon FVG** is formed.
4. **Entry:** Limit Order at the top of the Neon FVG.
5. **Target:** The Gold Zone (POC) or the upper white line (VAH).
6. **Stop Loss:** Below the recent swing low.
#### Step C: Warning Signals (When NOT to trade)
* **In "No Man's Land":** If the price is sitting right in the middle between Gold (POC) and White (VAH/VAL), do nothing. The risk is 50/50. Wait until price hits an edge.
* **Against the Flow:** If EMA 9 and 21 are pointing steeply downwards, do not buy blindly at the VAL just because the line is there. Wait for confirmation (FVG).
### Pre-Trade Checklist:
1. **Level:** Am I at a white line (VAH/VAL) or the Gold Zone (POC)?
2. **Structure:** Do I have an HTF Demand/Supply Zone backing me up?
3. **Trigger:** Do I see a Neon FVG pointing in my direction?






















